查看原文
其他

Python分析【公众号】历史评论,看看大家的留言情况!

李运辰 Python研究者 2022-09-11


大家好,我是辰哥~~~


辰哥玩公众号有一段时间了,这期文章分析一波读者的留言情况,不仅可以对公众号的各位铁粉一目了然,还可以通过分析的结果对公众号的经营进行更好的规划。如读者留言的内容通常是内容是什么?关注的点是什么等等这些

分析目录

  1. 累计用户留言总数排名

  2. 每一篇文章留言总数排名

  3. 留言内容词云图

  4. 回复内容词云图

  5. 分析每月留言总数排名

  6. 分析月份留言数top1 & 每天留言排名

  7. 分析辰哥每月发文情况

01


预览数据


公众号后台提供数据导出功能,辰哥通过该功能可以一键导出成excel,数据内容如下:(涉及昵称等隐私部分已打码



下面的数据主要需要用到的数据是红框中的部分(留言者昵称、留言内容、留言时间、回复内容


import pandas as pdfrom collections import Counterfrom pyecharts import options as optsfrom pyecharts.globals import ThemeTypefrom pyecharts.charts import Barfrom pyecharts.charts import Piefrom pyecharts.charts import Linefrom pyecharts.commons.utils import JsCodefrom stylecloud import gen_stylecloudimport jieba


本文源码分析所用到的库如上,pyecharts是可视化库(其中pyechart库是1.9版本)、pandas用于读取excel数据、collections用于累加统计、stylecloud和jieba用于词云图。

#读入数据
df = pd.read_excel("留言导出-Python研究者.xlsx")


02


数据分析 & 可视化


分析1:累计用户留言总数排名

name_counts = df.groupby('留言者昵称')['留言内容'].count().sort_values(ascending=False).reset_index()name_counts.columns = ['留言者昵称','留言内容']name = name_counts['留言者昵称']name = (name[0:10]).tolist()dict_values = name_counts['留言内容']dict_values = (dict_values[0:10]).tolist()


根据字段留言者昵称,统计每一位用户的留言总数,并进行排序,取出top10。


图中展示的是公众号历史以来用户留言总数的top10。尤其是排名靠前的几位,每次留言大多数都是前排,辰哥真心被感动到了(感动哭了)。

ps:图中的昵称是微信昵称,由于林哥的微信昵称是真名,所以就用林哥代替(平时我称呼他为林哥,哈哈哈)

分析2:每一篇文章留言总数排名

article_counts = df.groupby('文章')['留言内容'].count().sort_values(ascending=False).reset_index()article_counts.columns = ['文章', '留言内容']name = article_counts['文章']name = (name[0:10]).tolist()dict_values = article_counts['留言内容']dict_values = (dict_values[0:10]).tolist()

对每一篇文章的评论数进行汇总,根据总数进行排名,取出评论数最多的前top10。



图中右上角的顺序是留言数从高到低,从整体上来看,这些文章要么就是具备实用性,比如识别发票、禁止复制、人像卡通化等,要么就是贴近大家的话题,比如全国大学数据、山河令、明星知识图谱等。通过留言数前top10的文章,辰哥悟出了一个道理:要想留言多又好,实用与热点少不了


分析3:留言内容词云图

contents = (df['留言内容']).tolist()text = "".join(map(str,contents))

读取excel中留言内容,因为含有float类型或者其他多种类型的文本,因此通过map(str,contents)转为str类型。方便进行绘制词云图。通过词云图,看看读者留言内容的关键词有哪些?

图上来看,学习辰哥这两个高频我可以理解,可以一般评论内容是什么呢?ok,咱们先看来看一下含有可以的评论是通常是哪些!


关键词:可以

contents = (df['留言内容']).tolist()
key_list = [str(i) for i in contents if "可以" in str(i)]


关键词:这个

contents = (df['留言内容']).tolist()
key_list = [str(i) for i in contents if "这个" in str(i)]

分析4:回复内容词云图

分析3看到的是读者的评论关键词词云图,上图是辰哥回复评论的词云图,可以看到辰哥回复的最多的是表情包(离不开表情包),比如。此外还有就是【谢谢】【学习】【加油】,看来辰哥也是一个有礼貌、励志的,哈哈哈哈(自夸一下)


分析5:分析每月留言总数排名

data = (df['留言时间']).tolist()key_list = [str(i).split("-")[0]+"-"+str(i).split("-")[1] for i in data]result = Counter(key_list)d = sorted(result.items(), key=lambda x: x[1], reverse=True)x_data = [d[i][0] for i in range(0, len(d))]y_data = [d[i][1] for i in range(0, len(d))]for i in range(0,len(x_data)): print(x_data[i],y_data[i])

分析每一个月的留言总数,统计结果如下:

2021-06 144

2021-05 99

2021-04 96

2021-03 86

2021-07 44

2021-02 26

2020-11 24

2020-12 16

2021-01 14

2020-10 13

2020-09 2

2018-05 1

2020-08 1


从图中数据上来看,从今年2月开始,每月的评论总数逐渐递增(7月还没结束,所以未排第一),这个好像也可以说得通,因为越往后,读者也多,评论数也随之增加。目前一个月评论总数最多是上个月(6月),达到了144条。7月争取原超6月的数据~~~


分析6:分析月份留言数top1 & 每天留言排名

data = (df['留言时间']).tolist()key_list = [str(i).split(" ")[0] for i in data if "2021-06" in str(i)]result = Counter(key_list)d = sorted(result.items(), key=lambda x: x[1], reverse=True)x_data = [d[i][0].replace("2021-06-","") for i in range(0, len(d))]y_data = [d[i][1] for i in range(0, len(d))]for i in range(0,len(x_data)): print(x_data[i],y_data[i])

在分析5中,得知2021年6月的评论总数是最多的(144),接着分析该月里,每天的评论数据具体是多少?



可以看到在6月30号的时候评论数最多(刚好万粉的时候,所以评论较多),从整体上来看,一天的评论数均值是6或者7


分析7:分析辰哥每月发文情况

data = (df['发文时间']).tolist()month_data = []for i in data: if i not in month_data: month_data.append(i)key_list = [str(i).split("-")[0] + "-" + str(i).split("-")[1] for i in month_data]result = Counter(key_list)d = sorted(result.items(), key=lambda x: x[1], reverse=True)x_data = [d[i][0] for i in range(0, len(d))]y_data = [d[i][1] for i in range(0, len(d))]


通过excel中的发文时间,可以统计到辰哥每一个月的发文数量。



图中可以看到辰哥在近几个月(今年3月至今),更新频率保持稳定,大约是每一个月发15篇原创(评论里面仅统计原创文章),相当于是隔天更新一次


03


小结


辰哥对公众号一直以来的评论进行了一次分析,主要是从7个方面去对评论数据进行了分析 & 可视化~~~


分析目录

  1. 累计用户留言总数排名

  2. 每一篇文章留言总数排名

  3. 留言内容词云图

  4. 回复内容词云图

  5. 分析每月留言总数排名

  6. 分析月份留言数top1 & 每天留言排名

  7. 分析辰哥每月发文情况

最后辰哥悟出了一个道理:要想留言多又好,实用与热点少不了


往期精彩回顾




Docker学不会?不妨看看这篇文章


2300+字!在不同系统上安装Docker!看这一篇文章就够了


易车网实战+【保姆级】:Feapder爬虫框架入门教程



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存